Implement a Stack (FILO)
In [46]:
class Stack:
def __init__(self):
self.items = []
def __str__(self):
string = ""
if len(self.items) != 0:
for i in xrange(len(self.items)-1, -1, -1):
string += "{0}\n".format(self.items[i])
return string
def pop(self):
if self.items != []:
return self.items.pop()
else:
return None
def push(self, item):
self.items.insert(0, item)
def peek(self):
return self.items[-1]
In [47]:
stack = Stack()
print(stack)
stack.push(1)
print(stack)
stack.push(2)
print(stack)
stack.push(3)
print(stack)
print("Peeking at {0}".format(stack.peek()))
print("Popped off {0}".format(stack.pop()))
print(stack)
Implement a Queue (FIFO)
In [55]:
class Queue:
def __init__(self):
self.items = []
def __str__(self):
string = ""
for item in self.items:
string += "{0}\n".format(item)
return string
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
if self.items != []:
return self.items.pop(0)
else:
return None
In [56]:
queue = Queue()
print(queue)
queue.enqueue(1)
print(queue)
queue.enqueue(2)
print(queue)
queue.enqueue(3)
print(queue)
queue.dequeue()
print(queue)
In [49]: